/**
 * 
 */
package sv.gob.mh.dgii.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import org.apache.commons.lang3.builder.EqualsBuilder;

/**
 * @author melvin.henriquez
 * 
 */
@Entity
@Table(name = "VW_ED_CONSULTA_ERRORES_DEC")
public class VwEdConsultaErroresDeclaracion implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4753633277176279002L;
	private VwEdConsultaErroresDeclaracionId id;
	private Long correlativo;
	private String nit;
	private String nombre;
	private String ejercicio;
	private String usuario;
	private Date fechaError;
	private String descripcion;
	private String valor;
	private String tipo;

	public VwEdConsultaErroresDeclaracion() {
		// TODO Auto-generated constructor stub
	}

	public VwEdConsultaErroresDeclaracion(VwEdConsultaErroresDeclaracionId id) {
		this.id = id;
	}

	/**
	 * @return the id
	 */
	@EmbeddedId
	@AttributeOverrides( {
			@AttributeOverride(name = "declaracion", column = @Column(name = "DECLARACION", nullable = false)),
			@AttributeOverride(name = "correlativo", column = @Column(name = "CORRELATIVO", nullable = false)) })
	public VwEdConsultaErroresDeclaracionId getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(VwEdConsultaErroresDeclaracionId id) {
		this.id = id;
	}

	/**
	 * @return the correlativo
	 */
	@Column(name = "CORRELATIVO", nullable = false)
	public Long getCorrelativo() {
		return correlativo;
	}

	/**
	 * @param correlativo
	 *            the correlativo to set
	 */
	public void setCorrelativo(Long correlativo) {
		this.correlativo = correlativo;
	}

	/**
	 * @return the nit
	 */
	@Column(name = "NIT")
	public String getNit() {
		return nit;
	}

	/**
	 * @param nit
	 *            the nit to set
	 */
	public void setNit(String nit) {
		this.nit = nit;
	}

	/**
	 * @return the nombre
	 */
	@Column(name = "NOMBRE")
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param nombre
	 *            the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * @return the ejercicio
	 */
	@Column(name = "EJERCICIO")
	public String getEjercicio() {
		return ejercicio;
	}

	/**
	 * @param ejercicio
	 *            the ejercicio to set
	 */
	public void setEjercicio(String ejercicio) {
		this.ejercicio = ejercicio;
	}

	/**
	 * @return the usuario
	 */
	@Column(name = "USUARIO")
	public String getUsuario() {
		return usuario;
	}

	/**
	 * @param usuario
	 *            the usuario to set
	 */
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	/**
	 * @return the fechaError
	 */
	@Column(name = "FECHA_ERROR")
	public Date getFechaError() {
		return fechaError;
	}

	/**
	 * @param fechaError
	 *            the fechaError to set
	 */
	public void setFechaError(Date fechaError) {
		this.fechaError = fechaError;
	}

	/**
	 * @return the descripcion
	 */
	@Column(name = "DESCRIPCION")
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @param descripcion
	 *            the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/**
	 * @return the valor
	 */
	@Column(name = "VALOR")
	public String getValor() {
		return valor;
	}

	/**
	 * @param valor
	 *            the valor to set
	 */
	public void setValor(String valor) {
		this.valor = valor;
	}

	/**
	 * @return the tipo
	 */
	@Column(name = "TIPO")
	public String getTipo() {
		return tipo;
	}

	/**
	 * @param tipo
	 *            the tipo to set
	 */
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (!(obj instanceof VwEdConsultaErroresDeclaracionId)) {
			return false;
		}
		final VwEdConsultaErroresDeclaracion castOther = (VwEdConsultaErroresDeclaracion) obj;
		return new EqualsBuilder().append(id, castOther.getId()).isEquals();
	}

}
